#ifndef JSON_HEADER_H
#define JSON_HEADER_H

#include <iosfwd>
#include <string>
#include "interfaces/types/JsonTypeDefs.h"

namespace simframework
{
	namespace json
	{
		class Value
		{
		public:
			static void add(NullType value, std::wostream& stream);

			static void add( const std::wstring& value, std::wostream& stream);

			static void add( const char* value, std::wostream& stream);

			static void add( const unsigned char* value, std::wostream& stream);

			static void add( const signed char* value, std::wostream& stream);

			static void add( const wchar_t* value , std::wostream& stream);

			static void add( bool value , std::wostream& stream);

			static void add( char value , std::wostream& stream);

			static void add( unsigned char value , std::wostream& stream);

			static void add( signed char value , std::wostream& stream);

			static void add( wchar_t value , std::wostream& stream);

			static void add( short value , std::wostream& stream);

			static void add( unsigned short value , std::wostream& stream);

			static void add( int value , std::wostream& stream);

			static void add( unsigned int value , std::wostream& stream);

			static void add( long value , std::wostream& stream);

			static void add( unsigned long value , std::wostream& stream);

			static void add( float value , std::wostream& stream);

			static void add( double value, std::wostream& stream);		

			static void add( long double value, std::wostream& stream);	

			static void add( long long value, std::wostream& stream);	
		};
	}
}

#endif //JSON_HEADER_H